Denoにおけるfetch APIの拡張や独自仕様について
#Deno #Fetch_API
はじめに
DenoはFetch APIを実装しています
DenoはWPTを実行することにより、Fetch APIも含めた様々なWeb APIの標準との互換性を担保しています
ただし、Denoをバックエンドで利用する上では標準のFetch APIには不足している機能などもあります
そのため、DenoはFetch APIに関していくつか独自の拡張を導入しています
独自の拡張や仕様について
clientオプション
Denoでは独自にclientオプションを設定することができ、これによりプロキシーやコネクションプーリングなどに関する挙動をカスタマイズすることができます
code:typescript
using client = Deno.createHttpClient({ allowHost: true });
const res = await fetch("http://localhost:3000/", {
client,
headers: { host: "example.com" },
});
このclientオプションには上記のようにDeno.createHttpClientで作成したDeno.HttpClientオブジェクトを設定します
file:URLのサポート
Denoではfetch()にfile:形式のURLを指定でき、これによりfetch()でローカルのファイルを読むことが出来ます
code:typescript
const res = await fetch("file:///home/foo/data.txt");
const data = await res.text();
relative fetch
Denoの実行時に--locationを指定しておくと、以下のようにパスを指定したfetch()が行えます (例: --location=http://localhost:3000)
code:typescript
const res = await fetch("/api/user");
関連ページ
DenoにおけるWeb標準への拡張や独自仕様について
DenoにおけるTypeScriptの独自拡張について
Bunにおけるfetch APIの拡張や独自仕様について